#include <stdio.h>

union data {
    struct
    {
        unsigned char u;
        unsigned char v;
        unsigned char w;
        unsigned char x;
    } b;
    int i;
} a;

int main(int argc, char const *argv[])
{
    printf("%p,%p,%p,%p\n", &a.b.u, &a.b.v, &a.b.w, &a.b.x);
    printf("%p\n", &a.i);
    a.i = 1684234849;
    printf("%c,%c,%c,%c\n", a.b.u, a.b.v, a.b.w, a.b.x);
    char *p = (char *)&a;
    printf("%c,%c,%c,%c\n", p[0], p[1], p[2], p[3]);
    return 0;
}
